home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / jce.jar / javax / crypto / CipherSpi.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-07-27  |  3.2 KB  |  183 lines

  1. package javax.crypto;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.security.AlgorithmParameters;
  5. import java.security.InvalidAlgorithmParameterException;
  6. import java.security.InvalidKeyException;
  7. import java.security.Key;
  8. import java.security.NoSuchAlgorithmException;
  9. import java.security.ProviderException;
  10. import java.security.SecureRandom;
  11. import java.security.spec.AlgorithmParameterSpec;
  12.  
  13. public abstract class CipherSpi {
  14.    protected abstract void engineSetMode(String var1) throws NoSuchAlgorithmException;
  15.  
  16.    protected abstract void engineSetPadding(String var1) throws NoSuchPaddingException;
  17.  
  18.    protected abstract int engineGetBlockSize();
  19.  
  20.    protected abstract int engineGetOutputSize(int var1);
  21.  
  22.    protected abstract byte[] engineGetIV();
  23.  
  24.    protected abstract AlgorithmParameters engineGetParameters();
  25.  
  26.    protected abstract void engineInit(int var1, Key var2, SecureRandom var3) throws InvalidKeyException;
  27.  
  28.    protected abstract void engineInit(int var1, Key var2, AlgorithmParameterSpec var3, SecureRandom var4) throws InvalidKeyException, InvalidAlgorithmParameterException;
  29.  
  30.    protected abstract void engineInit(int var1, Key var2, AlgorithmParameters var3, SecureRandom var4) throws InvalidKeyException, InvalidAlgorithmParameterException;
  31.  
  32.    protected abstract byte[] engineUpdate(byte[] var1, int var2, int var3);
  33.  
  34.    protected abstract int engineUpdate(byte[] var1, int var2, int var3, byte[] var4, int var5) throws ShortBufferException;
  35.  
  36.    protected int engineUpdate(ByteBuffer var1, ByteBuffer var2) throws ShortBufferException {
  37.       try {
  38.          return this.method_1(var1, var2, true);
  39.       } catch (IllegalBlockSizeException var4) {
  40.          throw new ProviderException("Internal error in update()");
  41.       } catch (BadPaddingException var5) {
  42.          throw new ProviderException("Internal error in update()");
  43.       }
  44.    }
  45.  
  46.    protected abstract byte[] engineDoFinal(byte[] var1, int var2, int var3) throws IllegalBlockSizeException, BadPaddingException;
  47.  
  48.    protected abstract int engineDoFinal(byte[] var1, int var2, int var3, byte[] var4, int var5) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException;
  49.  
  50.    protected int engineDoFinal(ByteBuffer var1, ByteBuffer var2) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException {
  51.       return this.method_1(var1, var2, false);
  52.    }
  53.  
  54.    // $FF: renamed from: a (int) int
  55.    static int method_0(int var0) {
  56.       return Math.min(4096, var0);
  57.    }
  58.  
  59.    // $FF: renamed from: a (java.nio.ByteBuffer, java.nio.ByteBuffer, boolean) int
  60.    private int method_1(ByteBuffer var1, ByteBuffer var2, boolean var3) throws ShortBufferException, IllegalBlockSizeException, BadPaddingException {
  61.       if (var1 != null && var2 != null) {
  62.          int var4 = var1.position();
  63.          int var5 = var1.limit();
  64.          int var6 = var5 - var4;
  65.          if (var3 && var6 == 0) {
  66.             return 0;
  67.          } else {
  68.             int var7 = this.engineGetOutputSize(var6);
  69.             if (var2.remaining() < var7) {
  70.                throw new ShortBufferException("Need at least " + var7 + " bytes of space in output buffer");
  71.             } else {
  72.                boolean var8 = var1.hasArray();
  73.                boolean var9 = var2.hasArray();
  74.                if (var8 && var9) {
  75.                   byte[] var21 = var1.array();
  76.                   int var23 = var1.arrayOffset() + var4;
  77.                   byte[] var25 = var2.array();
  78.                   int var27 = var2.position();
  79.                   int var29 = var2.arrayOffset() + var27;
  80.                   int var31;
  81.                   if (var3) {
  82.                      var31 = this.engineUpdate(var21, var23, var6, var25, var29);
  83.                   } else {
  84.                      var31 = this.engineDoFinal(var21, var23, var6, var25, var29);
  85.                   }
  86.  
  87.                   var1.position(var5);
  88.                   var2.position(var27 + var31);
  89.                   return var31;
  90.                } else if (!var8 && var9) {
  91.                   int var20 = var2.position();
  92.                   byte[] var22 = var2.array();
  93.                   int var24 = var2.arrayOffset() + var20;
  94.                   byte[] var26 = new byte[method_0(var6)];
  95.  
  96.                   int var28;
  97.                   int var30;
  98.                   for(var28 = 0; var6 > 0; var6 -= var30) {
  99.                      var30 = Math.min(var6, var26.length);
  100.                      var1.get(var26, 0, var30);
  101.                      int var32;
  102.                      if (!var3 && var6 == var30) {
  103.                         var32 = this.engineDoFinal(var26, 0, var30, var22, var24);
  104.                      } else {
  105.                         var32 = this.engineUpdate(var26, 0, var30, var22, var24);
  106.                      }
  107.  
  108.                      var28 += var32;
  109.                      var24 += var32;
  110.                   }
  111.  
  112.                   var2.position(var20 + var28);
  113.                   return var28;
  114.                } else {
  115.                   byte[] var10;
  116.                   int var11;
  117.                   if (var8) {
  118.                      var10 = var1.array();
  119.                      var11 = var1.arrayOffset() + var4;
  120.                   } else {
  121.                      var10 = new byte[method_0(var6)];
  122.                      var11 = 0;
  123.                   }
  124.  
  125.                   byte[] var12 = new byte[method_0(var7)];
  126.                   int var13 = var12.length;
  127.                   int var14 = 0;
  128.                   boolean var15 = false;
  129.  
  130.                   while(var6 > 0) {
  131.                      int var16 = Math.min(var6, var13);
  132.                      if (!var8 && !var15) {
  133.                         var1.get(var10, 0, var16);
  134.                         var11 = 0;
  135.                      }
  136.  
  137.                      try {
  138.                         int var17;
  139.                         if (!var3 && var6 == var16) {
  140.                            var17 = this.engineDoFinal(var10, var11, var16, var12, 0);
  141.                         } else {
  142.                            var17 = this.engineUpdate(var10, var11, var16, var12, 0);
  143.                         }
  144.  
  145.                         var15 = false;
  146.                         var11 += var16;
  147.                         var6 -= var16;
  148.                         var2.put(var12, 0, var17);
  149.                         var14 += var17;
  150.                      } catch (ShortBufferException var19) {
  151.                         if (var15) {
  152.                            throw (ProviderException)(new ProviderException("Could not determine buffer size")).initCause(var19);
  153.                         }
  154.  
  155.                         var15 = true;
  156.                         int var18 = this.engineGetOutputSize(var16);
  157.                         var12 = new byte[var18];
  158.                      }
  159.                   }
  160.  
  161.                   var1.position(var5);
  162.                   return var14;
  163.                }
  164.             }
  165.          }
  166.       } else {
  167.          throw new NullPointerException("Input and output buffers must not be null");
  168.       }
  169.    }
  170.  
  171.    protected byte[] engineWrap(Key var1) throws IllegalBlockSizeException, InvalidKeyException {
  172.       throw new UnsupportedOperationException();
  173.    }
  174.  
  175.    protected Key engineUnwrap(byte[] var1, String var2, int var3) throws InvalidKeyException, NoSuchAlgorithmException {
  176.       throw new UnsupportedOperationException();
  177.    }
  178.  
  179.    protected int engineGetKeySize(Key var1) throws InvalidKeyException {
  180.       throw new UnsupportedOperationException();
  181.    }
  182. }
  183.